package thread;

/**
 * 多线程
 * 线程：一个单一的顺序执行流程是一个线程
 * 多线程：多个顺序执行流程 ”同时“执行
 *
 */
public class ThreadDemo {
    public static void main(String[] args) {
        MyThread1 m1 = new MyThread1();
        MyThread2 m2 = new MyThread2();
        //注意。启动线程是调用start方法而不是直接调用run方法!!!
        m1.start();
        m2.start();
    }
}
/**
 * 第一种创建线程的优点:结构简单，利于匿名内部类形式创建
 * 缺点:
 * 1:由于java是单继承的，这导致如果继承了线程就无法再继承其他类去复用方法
 * 2:创建线程的同时重写run方法将任务定义在线程中，这导致线程与任务存在必然的耦合关系
 *   不利于线程的重(chong)用。
 */
class MyThread1 extends Thread{
    @Override
    public void run() {
        for (int i=0;i<1000;i++){
            System.out.println("你好");
        }
    }
}
class MyThread2 extends Thread{
    @Override
    public void run() {
        for (int i=0;i<1000;i++){
            System.out.println("我是送水的");
        }
    }
}